package com.jic.order.request;

import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

@Data
public class CreateParentOrderRequest implements Serializable {

	@ApiModelProperty(notes = "请求流水号，防重复提交的")
	private String serialNo;
	@ApiModelProperty(notes = "销售渠道，对应枚举com.jic.order.enums.SaleChannelEnum")
	private Integer saleChannel;
	@ApiModelProperty(notes = "购买人的用户id")
	private long buyerId;
	@ApiModelProperty(notes = "购买人的用户名")
	private String buyerUsername;
	@ApiModelProperty(notes = "收货人省id")
	private long receiverProvinceId;
	@ApiModelProperty(notes = "收货人省名称")
	private String receiverProvinceName;
	@ApiModelProperty(notes = "收货人市id")
	private long receiverCityId;
	@ApiModelProperty(notes = "收货人市名称")
	private String receiverCityName;
	@ApiModelProperty(notes = "收货人区/县id")
	private long receiverCountryId;
	@ApiModelProperty(notes = "收货人区/县名称")
	private String receiverRegionName;
	@ApiModelProperty(notes = "收货人名字")
	private String receiverName;
	@ApiModelProperty(notes = "收货人电话")
	private String receiverPhone;
	@ApiModelProperty(notes = "收货人详细地址")
	private String receiverAddress;
	@ApiModelProperty(notes = "销售总金额")
	private BigDecimal saleTotalAmount;
	@ApiModelProperty(notes = "优惠总金额，优惠总金额=销售总金额-购买总金额")
	private BigDecimal discountTotalAmount;
	@ApiModelProperty(notes = "购买总金额，购买总金额=销售总金额-优惠总金额")
	private BigDecimal buyTotalAmount;
	@ApiModelProperty(notes = "物流总费")
	private BigDecimal expressTotalFee;
	@ApiModelProperty(notes = "实付总金额，实付总金额=购买总金额+物流总费")
	private BigDecimal actualPayTotalAmount;
	@NotNull(message = "优惠券列表")
	@ApiModelProperty(value = "优惠券列表", required = true)
	private List<String> couponCodeList;
	@ApiModelProperty(notes = "子订单列表")
	private List<CreateOrderRequest> createOrderRequestList;
	@ApiModelProperty(notes = "订单类型")
	private Integer orderType;
	@ApiModelProperty(notes = "发票id")
	private Long invoiceId;

	@ApiModelProperty("商品类型：1-常规商品;2卡券、3海购、4赠品、10实体卡、11虚拟卡、20券、 5生鲜产品、6增值服务、7其他、21积分商品;31-称重商品;41-虚拟充值")
	private Integer productType;
	@ApiModelProperty("虚拟商品充值手机号")
	private String virtualPhone;
}
